package com.doupi.partner.model;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.util.Date;

/**
 * com.xletou.generator.codegen.mybatis3.IntrospectedTableMyBatisImpl@41f90b10 
 */
public class UserRelation implements Serializable {
    private static final long serialVersionUID = -1950702389273311744L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 手机号
     */
    private String mobile;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 用户id
     */
    private String userId;

    /**
     * 商家id
     */
    private String businessId;

    /**
     * 头像url
     */
    private String headImgUrl;

    /**
     * 微信的openid
     */
    private String openId;

    /**
     * 商家后台登录账号id
     */
    private Long businessAdministratorId;

    /**
     * 合伙人后台登录账户id
     */
    private Long partnerAdministratorId;

    /**
     * 上级合伙人后台登录账户id
     */
    private Long superiorPartnerAdministratorId;

    /**
     * 城市代理商后台登录账户id
     */
    private Long cityAdministratorId;

    /**
     * 分站后台登录账户id
     */
    private Long substationAdministratorId;

    /**
     *  合伙人城市
     */
    private String city;

    /**
     * 类型 1自有粉丝 2裂变粉丝 4平台用户
     */
    private Byte type;

    /**
     * 额外属性，一般不会变
     */
    private String extraData;

    /**
     * 创建时间
     */
    private Date createTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getBusinessId() {
        return businessId;
    }

    public void setBusinessId(String businessId) {
        this.businessId = businessId;
    }

    public String getHeadImgUrl() {
        return headImgUrl;
    }

    public void setHeadImgUrl(String headImgUrl) {
        this.headImgUrl = headImgUrl;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public Long getBusinessAdministratorId() {
        return businessAdministratorId;
    }

    public void setBusinessAdministratorId(Long businessAdministratorId) {
        this.businessAdministratorId = businessAdministratorId;
    }

    public Long getPartnerAdministratorId() {
        return partnerAdministratorId;
    }

    public void setPartnerAdministratorId(Long partnerAdministratorId) {
        this.partnerAdministratorId = partnerAdministratorId;
    }

    public Long getSuperiorPartnerAdministratorId() {
        return superiorPartnerAdministratorId;
    }

    public void setSuperiorPartnerAdministratorId(Long superiorPartnerAdministratorId) {
        this.superiorPartnerAdministratorId = superiorPartnerAdministratorId;
    }

    public Long getCityAdministratorId() {
        return cityAdministratorId;
    }

    public void setCityAdministratorId(Long cityAdministratorId) {
        this.cityAdministratorId = cityAdministratorId;
    }

    public Long getSubstationAdministratorId() {
        return substationAdministratorId;
    }

    public void setSubstationAdministratorId(Long substationAdministratorId) {
        this.substationAdministratorId = substationAdministratorId;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public Byte getType() {
        return type;
    }

    public void setType(Byte type) {
        this.type = type;
    }

    public String getExtraData() {
        return extraData;
    }

    public void setExtraData(String extraData) {
        this.extraData = extraData;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public boolean equals(Object that) {
        return EqualsBuilder.reflectionEquals(this, that);
    }

    @Override
    public int hashCode() {
        return HashCodeBuilder.reflectionHashCode(this);
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
    }
}